﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OpenCompiler.CodeGen
{
	public class Builder
	{
		private Builder()
		{
		}

		public static IConstructionProvider ConstructionProvider { get; set; }

		public static Builder Create()
		{
			return new Builder();
		}


		public ITypeBuilder CreateType(string name)
		{
			

			return null;
		}

		public ITypeBuilder<T> BuildFrom<T>()
			where T:class
		{

			ITypeBuilder<T> typeBuilder = ConstructionProvider.CreateTypeBuilderFromType<T>();
			return typeBuilder;
		}

		public T CreateInstance<T>()
			where T: class
		{
			return default(T);
		}
	}
}
